home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
advancec.arc
/
EVENT.C
< prev
next >
Wrap
Text File
|
1992-01-24
|
2KB
|
101 lines
/*
event.c
event manager routines and variables
*/
/*
#include system-dependent header files here
*/
#include "usrif.h"
#undef NULL
#include "ctype.h"
#include "stdio.h"
/* cursor record */
extern point_t cursor;
/* keyboard lookup table */
char key_map[256];
extern rect_t screen;
/* the event record */
event_t the_event;
/*
initialize event manager
*/
void init_event()
{
int i;
/* initial cursor position */
cursor.x = cursor.y = 0;
/* default ascii keyboard lookup table */
for(i=0;i<256;i++)
if(isascii(i))
key_map[i] = (char) i;
else
key_map[i] = '\0';
/* initialize system-dependent event managers here */
}
event_t *get_next_event()
{
point_t where;
int data;
/* get system event */
switch(type) /* What type of event was it? */
{
case /* no event */ :
the_event.what = NULL_EVENT;
break;
case /* button event */ :
/* down button? */
the_event.what = DN_BUTTON_EVENT;
/* up button? */
the_event.what = UP_BUTTON_EVENT;
break;
case /* pointer moved */ :
where.x = /* pointer x location */
where.y = /* pointer y location */
set_cursor( &where);
/* movement of pointer is not event */
the_event.what = NULL_EVENT;
break;
case /* key was pressed */ :
/* keyboard key is in data */
the_event.stroke = key_map[data];
the_event.what = KEY_EVENT;
if(data == ABORT_KEY)
the_event.what = ABORT_EVENT;
break;
}
/* set up the event record */
the_event.where.x = cursor.x;
the_event.where.y = cursor.y;
return( &the_event );
}